import router from "@/router";
import useUserStore from "@/stores/user";
import checkAccess from "@/access/checkAccess";
import accessAuth from "@/access/accessAuth";

router.beforeEach(async (to, from, next) => {
	const userStore = useUserStore();
	const loginUser = userStore.loginUser;
	// console.log("登陆用户信息", loginUser);
	// 如果之前没登陆过，自动登录
	if (!loginUser || loginUser.userRole === "") {
		// 加 await 是为了等用户登录成功之后，再执行后续的代码
		await userStore.getLoginUser();
	}
	const needAccess = to.meta?.access ?? accessAuth.NOT_LOGIN;
	// 要跳转的页面必须要登陆
	if (needAccess !== accessAuth.NOT_LOGIN) {
		// 如果没登陆，跳转到登录页面
		if (!loginUser || loginUser.userRole === "" || loginUser.userRole === accessAuth.NOT_LOGIN) {
			next(`/user/login`);
			return;
		}
		// 如果已经登陆了，但是权限不足，那么跳转到无权限页面
		if (!checkAccess(loginUser, needAccess)) {
			next("/noAuth");
			return;
		}
	}
	next();
});
